Emberveil source

game/2006Scape Client/src/main/java/EmberveilBrand.java

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import javax.imageio.ImageIO;

/** Original wordmark rendered locally, without additional asset downloads. */
public final class EmberveilBrand {
    private EmberveilBrand() {}
    public static Sprite logo() {
        try (InputStream input = EmberveilBrand.class.getResourceAsStream("/emberveil-logo.png")) {
            if (input != null) {
                BufferedImage artwork = ImageIO.read(input);
                if (artwork != null) {
                    Sprite logo = new Sprite(artwork.getWidth(), artwork.getHeight());
                    artwork.getRGB(0, 0, artwork.getWidth(), artwork.getHeight(), logo.pixels, 0, artwork.getWidth());
                    for (int i = 0; i < logo.pixels.length; i++)
                        logo.pixels[i] = (logo.pixels[i] >>> 24) < 16 ? 0 : logo.pixels[i] & 0xffffff;
                    return logo;
                }
            }
        } catch (java.io.IOException ignored) {
            // Keep the original text available if a packaged logo cannot be read.
        }
        BufferedImage image = new BufferedImage(420, 115, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = image.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setFont(new Font("Serif", Font.BOLD, 48));
        String title = "EMBERVEIL";
        int x = (420-g.getFontMetrics().stringWidth(title))/2;
        g.setColor(new Color(50,25,15)); g.drawString(title,x+2,72);
        g.setPaint(new GradientPaint(0,28,new Color(255,226,164),0,78,new Color(192,113,48)));
        g.drawString(title,x,70);
        g.setColor(new Color(146,105,61)); g.drawLine(82,90,338,90);
        g.setFont(new Font("Serif", Font.PLAIN, 13));
        String subtitle = "F I R S T   L I G H T";
        g.setColor(new Color(216,194,151));
        g.drawString(subtitle,(420-g.getFontMetrics().stringWidth(subtitle))/2,108);
        g.dispose();
        Sprite sprite = new Sprite(420,115);
        image.getRGB(0,0,420,115,sprite.pixels,0,420);
        for (int i=0;i<sprite.pixels.length;i++) sprite.pixels[i] &= 0xffffff;
        return sprite;
    }
}